#include "smart_home.h"
#include "ui_smart_home.h"
#include <QDebug>
smart_home::smart_home(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::smart_home)
{
    ui->setupUi(this);
    //设置lcdnumber初始化
    tem = 26;
    ui->lcdNumber->display(tem);
    ui->lcdNumber->setDigitCount(2);
    //打开串口
    slotOpenSerialPort();
}

smart_home::~smart_home()
{
    delete ui;
    slotCloseSerialPort();
}
//关闭串口
void smart_home::slotCloseSerialPort()
{
    if (my_serialport)
        my_serialport->close();
}
//打开串口
void smart_home::slotOpenSerialPort()
{
    //创建一个串口对象
    my_serialport = new QSerialPort(this);
    //安全判断串口是否打开了，打开了则先关闭
    if(my_serialport->isOpen())
    {
        qDebug()<<"串口已被打开"<<endl;
        return;
    }
    //设置串口名字
    my_serialport->setPortName("COM2");
    //打开串口，安全判断
    if(!my_serialport->open(QIODevice::ReadWrite))
    {
        qDebug()<<"串口打开失败"<<endl;
    }
    my_serialport->setBaudRate(9600);//设置波特率
    my_serialport->setDataBits(QSerialPort::Data8);//设置数据位
    my_serialport->setFlowControl(QSerialPort::NoFlowControl);//设置数据流控制
    my_serialport->setParity(QSerialPort::NoParity);//设置奇偶校验位
    my_serialport->setStopBits(QSerialPort::OneStop);//设置停止位

    connect(my_serialport,SIGNAL(readyRead()),this,SLOT(slotReadData()));
}
//接收串口数据
void smart_home::slotReadData()
{
    QString data = my_serialport->readAll();
    qDebug()<<"接收的数据为"<<data<<endl;
}
//传输串口数据
void smart_home::slotSend(QString data)
{
    if(my_serialport)
    {
        if(!my_serialport->isOpen())
        {
            qDebug()<<"串口没有打开"<<endl;
        }
        QByteArray sendbuf;
        sendbuf.append(data);//将字符串转成字节数据
        my_serialport->write(sendbuf);
    }
}

//风扇关闭
void smart_home::on_radioButton_clicked()
{
    qDebug()<<"关闭风扇"<<endl;
    slotSend("关闭风扇");
}
//风扇打开
void smart_home::on_radioButton_2_clicked()
{
    qDebug()<<"打开风扇"<<endl;
    slotSend("打开风扇");
}

void smart_home::on_radioButton_7_clicked()
{
    qDebug()<<"关闭电灯"<<endl;
    slotSend("关闭电灯");
}

void smart_home::on_radioButton_8_clicked()
{
    qDebug()<<"打开电灯"<<endl;
    slotSend("打开电灯");
}

void smart_home::on_radioButton_3_clicked()
{
    qDebug()<<"关闭空调"<<endl;
    slotSend("关闭空调");
}

void smart_home::on_radioButton_4_clicked()
{
    qDebug()<<"打开空调"<<endl;
    slotSend("打开空调");
}

void smart_home::on_radioButton_9_clicked()
{
    qDebug()<<"打开热风模式"<<endl;
    slotSend("打开热风模式");
}

void smart_home::on_radioButton_10_clicked()
{
    qDebug()<<"打开冷风模式"<<endl;
    slotSend("打开冷风模式");
}

void smart_home::on_pushButton_clicked()
{
    qDebug()<<"加温"<<endl;
    slotSend("加温");
    tem = tem+1;
    ui->lcdNumber->display(tem);
}

void smart_home::on_pushButton_2_clicked()
{
    qDebug()<<"降温"<<endl;
    slotSend("降温");
    tem = tem-1;
    ui->lcdNumber->display(tem);

}
